package com.iluwatar.doubleadapter;

/**
 * 双向适配器，甚至万能适配器都可以按照这个类写下去，规则很简单
 * 一个适配器同时只能被当作包含一个A接口的B接口设备
 * 然后制定适配规则，A-->B 还是A-->C等等
 */
public class DisplayAdapter implements HDMI, VGA {//继续往下充当某个接口设备

    private HDMI mHDMI;
    private VGA mVGA;
    //继续往下持有接口

    public DisplayAdapter(Object device) {
        if (device instanceof VGA)
            this.mVGA = (VGA) device;
        else if (device instanceof HDMI)
            this.mHDMI = (HDMI) device;
        //继续往下判断插入的设备是所支持的哪种设备
    }

    @Override
    public void showHD(String content) {
        if (mVGA != null) {
            mVGA.show("VGA显示" + content);
        }
    }

    @Override
    public void show(String text) {
        if (mHDMI != null)
            mHDMI.showHD("HDMI显示" + text);
    }
    //接续往下写接口的实现方法，并在方法中做接口适配方案
}
